Kettle实战系列之基于Carte构建微服务 |
您所在的位置:网站首页 › kettle api抽数 › Kettle实战系列之基于Carte构建微服务 |
![]() 摘要:本文由以数据之名分享,正所谓“所思即所见,所见即所得”。上一篇文章“Kettle基于Carte构建执行容器集群”,叙述了基于Kettle自带的Carte模块,如何构建高可用的Kettle作业和转换的运行服务集群。今天,我们跟着小编的节奏,继续探讨Kettle实战系列之基于Carte实现数据查询服务,做到数据清洗与数据服务端到端链路“所思、所见、所得”的完美结合,我们称之为ETL as a Service(EaaS)。 ![]() Carte 是一个简单的 Web 服务器,允许您远程运行转换和作业。它接收包含要运行的转换和执行配置的 XML(使用一个小 servlet)。它允许您远程监控、启动和停止在 Carte 服务器上运行的转换和作业。 您可以将 Carte 的单个实例设置为作为作业或转换的独立执行引擎运行。在 Spoon 中,您可以定义一个或多个 Carte 服务器并向它们发送作业和转换。如果要提高资源密集型转换和作业的 PDI 性能,请使用 Carte 集群。 1.2、Carte集群的架构类型有两种类型的 Carte 集群。静态 Carte 集群具有固定架构,指定一个主节点和两个或多个从节点。在静态集群中,您在设计时指定集群中的节点, 然后再运行转换或作业。 AD动态 Carte 集群具有一个架构,该架构指定一个主节点和不同数量的从节点。与静态集群不同,从节点直到运行时才知道。相反,您注册从属节点,然后在运行时,PDI 每 30 秒监视从属节点以查看它是否可用于执行转换和作业处理任务。 对于没有大量机器(虚拟或真实)用于 PDI 转换的较小环境,静态集群是一个不错的选择。 如果经常添加或删除节点(例如在云计算环境中),动态集群可以很好地工作。动态集群也更适用于转换性能极其重要的环境,或者可能存在多个并发转换执行的环境。 1.3、Carte服务的启动与停止API1.3.1、启动Carte服务:#1、启动API: ./carte.sh pwd/carte-slave-config.xml #2、补充参数: #2.1、接收线程数量,专用于接收传入连接的线程数。接收器的数量应小于或等于CPU的数量。 KETTLE_CARTE_JETTY_ACCEPTORS acceptors #2.2、接收队列大小,在操作系统开始发送拒绝之前可以排队的连接请求数。 KETTLE_CARTE_JETTY_ACCEPT_QUEUE_SIZE acceptQueueSize #2.3、低资源最大空闲时间,这允许服务器快速关闭空闲连接,以便优雅地处理高负载情况。 KETTLE_CARTE_JETTY_RES_MAX_IDLE_TIME lowResourcesMaxIdleTime #3、调整方式: 更改kettle.properties文件中的Jetty服务器参数 更改carte-slave-config.xml文件中的Jetty服务器参数 2 2 2 1.3.2、停止Carte服务:#1、API: Carte [-s] [-p ] [-u ] #2、API示例: Carte 127.0.0.1 8080 -s -p itbigbird -u itbigbird #3、HTTP API示例: http://localhost:8080/kettle/stopCarte![]() ![]() 访问Carte容器自带的Web UI可以看每个任务的运行状态、查看任务的运行日志: http://127.0.0.1:8088/kettle/status/![]() ![]() Kettle工具我们一般都用来作为ETL数据清洗的工具,但实际上Kettle架构模块Carte也可以作为服务引擎来提供数据查询服务,下面我们先来看一下Carte微服务技术架构图。 ![]() Carte微服务架构流程说明: APP、PC等客户端通过公网或内网SLB,访问Carte微服务网关API,发起调用Post或Get请求;gateway把客户端请求,转发给Carte服务容器;Carte服务容器,调用Kettle Carte API,执行一个Job作业或者一个Trans转换;Job或者Trans接收API执行命令,并接收服务请求参数,然后解析参数给数据库DB或其他OSS查询请求,中间加上个性化的ETL处理逻辑,执行结果输出文件(Json Output、文本文件等);Trans把ETL结果集,发送给请求Carte Servlet容器;Carte 服务容器把结果集,返回给网关Gateway;网关Gateway,再把结果集转发给请求客户端。![]() ![]() ![]() ![]() Carte服务API获取的参数方式有两种,从转换属性自定义接收命名参数和用获取变量组件接收参数 4.3.1、示例cms-carte-1流程图(转换属性自定义接收命名参数)![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 在Windows环境下,返回结果集中文可能会存在乱码,这时需要修改Kettle的全局配置文件/.kettle/kettle.properties中Servlet字符集编码参数。 KETTLE_DEFAULT_SERVLET_ENCODING = UTF-8备注:此操作配置后,需要重启Carte服务集群各个节点,才会生效配置。 5.3、Carte服务测试模型全量数据![]() ![]() Kettle插件开发之Splunk篇 Kettle插件开发之Elasticsearch篇 Kettle插件开发之KafkaConsumerAssignPartition篇 Kettle插件开发之KafkaProducer篇 Kettle插件开发之KafkaConsumer篇 Kettle插件开发之KafkaConsumerAssignPartition篇 Kettle插件开发之MQToSQL篇 Kettle插件开发之Redis篇 基于Kettle快速构建基础数据仓库平台 Kettle知识库问答系列之三十而立 Kettle知识库问答系列之四十不惑 Kettle知识库问答系列之五十而知天命 Kettle知识库问答系列之六十而耳顺 Kettle知识库问答系列之七十古稀 Kettle实战系列之Carte集群应用 Kettle实战系列之动态邮件 虽小编一己之力微弱,但读者众星之光璀璨。小编敞开心扉之门,还望倾囊赐教原创之文,期待之心满于胸怀,感激之情溢于言表。一句话,欢迎联系小编投稿您的原创文章! ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |